/**
 * 首页逻辑
 * @file 水逆退散局小程序首页
 */

// 防止Trace未定义错误
if (typeof Trace === 'undefined') {
  if (typeof global !== 'undefined') {
    global.Trace = {
      addTask: function() {},
      newTask: function() {}
    };
  } else {
    var Trace = {
      addTask: function() {},
      newTask: function() {}
    };
  }
}

Page({
  /**
   * 页面的初始数据
   */
  data: {
    title: '水逆退散局',
    birthDate: '', // 用户选择的出生日期
    timeIndex: null, // 用户选择的时辰索引
    currentDate: '', // 当前日期，用于限制日期选择器
    timeRanges: [
      '子时 (23:00-1:00)',
      '丑时 (1:00-3:00)',
      '寅时 (3:00-5:00)',
      '卯时 (5:00-7:00)',
      '辰时 (7:00-9:00)',
      '巳时 (9:00-11:00)',
      '午时 (11:00-13:00)',
      '未时 (13:00-15:00)',
      '申时 (15:00-17:00)',
      '酉时 (17:00-19:00)',
      '戌时 (19:00-21:00)',
      '亥时 (21:00-23:00)'
    ],
    isCalculating: false
  },

  /**
   * 生命周期函数--监听页面加载
   * @param {Object} options 页面参数
   */
  onLoad: function (options) {
    // 获取当前日期，设置为日期选择器的最大日期
    const today = new Date();
    const year = today.getFullYear();
    const month = today.getMonth() + 1;
    const day = today.getDate();
    
    const formattedMonth = month < 10 ? '0' + month : month;
    const formattedDay = day < 10 ? '0' + day : day;
    
    const currentDate = `${year}-${formattedMonth}-${formattedDay}`;
    
    this.setData({
      currentDate: currentDate
    });
    
    // 监听页面错误
    wx.onError(function(res) {
      console.error('捕获到错误:', res);
    });
  },
  
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    // 页面显示时的逻辑
  },

  /**
   * 日期选择器变化处理函数
   * @param {Object} e 事件对象
   */
  bindDateChange: function(e) {
    this.setData({
      birthDate: e.detail.value
    });
  },

  /**
   * 时辰选择器变化处理函数
   * @param {Object} e 事件对象
   */
  bindTimeChange: function(e) {
    this.setData({
      timeIndex: e.detail.value
    });
  },

  /**
   * 开始计算运势
   */
  calculateFortune: function () {
    // 验证出生日期是否已选择
    if (!this.data.birthDate) {
      wx.showToast({
        title: '请选择出生日期',
        icon: 'none'
      });
      return;
    }
    
    // 设置计算中状态
    this.setData({
      isCalculating: true
    });
    
    // 获取用户选择的出生信息
    const birthInfo = {
      date: this.data.birthDate,
      time: this.data.timeIndex !== null ? this.data.timeRanges[this.data.timeIndex] : ''
    };
    
    try {
      // 模拟计算过程
      setTimeout(() => {
        // 跳转到结果页
        wx.navigateTo({
          url: '/pages/result/result?birthDate=' + birthInfo.date + 
               (birthInfo.time ? '&birthTime=' + encodeURIComponent(birthInfo.time) : ''),
          fail: (err) => {
            console.error('页面跳转失败:', err);
            this.setData({
              isCalculating: false
            });
            wx.showToast({
              title: '页面跳转失败',
              icon: 'none'
            });
          }
        });
        
        // 重置计算状态
        this.setData({
          isCalculating: false
        });
      }, 1500);
    } catch (error) {
      console.error('计算过程出错:', error);
      this.setData({
        isCalculating: false
      });
      wx.showToast({
        title: '计算失败，请重试',
        icon: 'none'
      });
    }
  },

  /**
   * 分享给朋友
   * @returns {Object} 分享配置
   */
  onShareAppMessage: function () {
    return {
      title: '水逆退散局 - 星象运势计算器',
      path: '/pages/index/index'
    };
  }
}) 